package com.example.matchingengine.service.dto;

import com.example.matchingengine.model.Order.OrderSide;
import com.example.matchingengine.model.Order.OrderType;
import com.example.matchingengine.model.Order.TimeInForce;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 订单请求DTO
 * 用于接收API请求中的订单数据
 */
@Data
public class OrderRequest {

    /**
     * 交易对
     */
    private String symbol;
    
    /**
     * 订单方向：BUY, SELL
     */
    private OrderSide side;
    
    /**
     * 订单类型：LIMIT, MARKET
     */
    private OrderType type;
    
    /**
     * 订单执行策略：GTC, IOC, FOK
     */
    private TimeInForce timeInForce;
    
    /**
     * 价格
     */
    private BigDecimal price;
    
    /**
     * 数量
     */
    private BigDecimal quantity;
    
    /**
     * 用户ID
     */
    private String userId;
    
    /**
     * 订单ID
     */
    private String orderId;
}